Encontré varios artículos, tanto aquí en SO como en otros lugares, que mencionan este mensaje de error, pero ninguno que pueda aplicar a mi situación específica. ¿Alguien puede ayudarme a entender lo que está pasando?
Si escribo mi código así:
selDocument.group_selected = function ($, anchor) { let tmpitems = $(".chkSelectedField:checked"); if (tmpitems.length > 1) { let items = []; $(tmpitems).each(function (a, b) { items.push($(b).val()); }); if (typeof anchor != 'undefined') { items = items.filter(el => el != anchor); } else { anchor = items.shift(); } console.log("57199516 items, anchor", items, anchor);funciona bien, pero si tomo esos bloques y los divido en su propia función:
selDocument.group_selected = function ($, anchor) { let tmpitems = $(".chkSelectedField:checked"); if (tmpitems.length > 1) { let retval = selDocument.create_items_array($, tmpitems, anchor); let items = retval.items; anchor = retval.anchor; console.log("57199516 items, anchor", items, anchor); ... selDocument.create_items_array = function ($, tmpitems, anchor) { let items = []; $(tmpitems).each(function (a, b) { items.push($(b).val()); }); if (typeof anchor != 'undefined') { items = items.filter(el => el != anchor); } else { anchor = items.shift(); } return JSON.parse({ 'items': items, 'anchor': anchor }); };Aparece "No se puede acceder a 'ancla' antes de la inicialización".